Plug and play (PnP) systems are used in virtually all personal computers and numerous computer-controlled machines as well. PnP systems, which are also known as hot-swapping systems, allow connections and disconnections of peripheral devices to a host system without manual installation of device drivers or a reboot of the host system.
A principle feature of a PnP system is its ability to automatically reconfigure a communication bus after the connection or disconnection of a peripheral device (“peripheral”). When a communication bus of the PnP system observes a change in the peripheral layout, the bus initiates a reset. A connect or disconnect of a peripheral is recognized by sensing the power to the peripheral or by a special circuit on the peripheral's connector. The reconfiguration process recognizes and reacquires all of the peripherals connected to the bus to ensure that each peripheral is properly loaded in the host system and is given access to the communication bus. The reconfiguration process must reconfigure all of the peripherals connected to the bus even if only one peripheral is connected or disconnected, in order to ensure that no peripherals are in conflict. The reconfiguration process recognizes any newly connected peripheral, and automatically retrieves and loads the drivers for that peripheral. Conversely, if a peripheral is disconnected, the reconfiguration process disables the peripheral's drivers within the system, and assigns that peripheral's time slot to another device. Some examples of commonly known PnP systems include Universal Serial Bus (USB), FireWire (IEEE 1394 protocol), and Peripheral Component Interconnect (PCI).
Existing communication buses typically include interfaces that allow devices to interact with the communication bus by converting the devices' complex commands and data into bit level data that can be transmitted over the bus. Many such interfaces are operated in accordance with protocols that are divided into layers. The layered design divides the functions of the protocol involved into a series of logical layers. Each layer requests services from the layer below and performs services for the layer above. Layering a protocol makes it easier to design and use. For example, the IEEE 1394 protocol is divided into a physical layer, a link layer, and a transaction layer.
The highest layer of the IEEE 1394 protocol is the transaction layer, which is responsible for reading, writing, and conveying other high level commands to and from each communicating device. The middle layer is the link layer, which handles data at a packet level. The lowest layer is the physical layer, which is responsible for actually transmitting and receiving data over the bus (including arbitration with the bus). Beyond the physical layer, the data is conveyed on the bus and is handled by another device. Consequently, the physical layer may be viewed as a junction between a peripheral and the other devices. Thus, the hardware connectors of a peripheral are located at the junction of the physical layer and the communication bus.
In existing PnP systems, such as for example, the PnP systems used in spacecraft, the communication bus is often configured so that the peripherals are daisy-chained together. This technique places each peripheral one behind the other along a communication stream. Consequently, a message that is transmitted to one peripheral must be passed on by, or allowed to be passed through, that peripheral to the next peripheral in the chain. For example, in order for a message to be passed from a host to the fifth peripheral in a chain, the first four peripherals in the chain must forward the message before it can arrive at the fifth peripheral. Consequently, since any peripheral in the chain depends upon the viability of the peripherals upstream, if one peripheral is incapable of forwarding data, then all of the peripherals downstream from that peripheral will lose communication with the host. Thus, a significant problem with the existing systems is that if a peripheral is disconnected from the communication bus, the bus has to be reconfigured in order to remove the disconnected peripheral from the chain.